home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 5 / The 640 Meg Shareware Studio CD-ROM Volume V (Data Express)(1994).ISO / amiga / d_ames23.lha / AutoMessage2 next >
Text File  |  1994-02-19  |  11KB  |  220 lines

  1. /**************************************************************************\
  2.       AutoMessage, v2.3      Another: Dotoran/Galactus Partner Project.
  3.  
  4.          $VER: AutoMessage, v2.3 (20-Feb-94) by Dotoran & Galactus!
  5. \**************************************************************************/
  6. options results ; signal on SYNTAX ; signal on ERROR ; signal on IOERR
  7. tr=transmit ; se=sendstring ; gc=getchar
  8. /**************************************************************************\
  9.     SysOp Definable Variables : Refer to "_READ_ME" file for more info!
  10. \**************************************************************************/
  11.  
  12. DirFile="GFILES:"         /* Support File Location; Must end in : or /    */
  13.   SFlag=1                 /* Show SignOn Immediately? (1=Yes,0=No)        */
  14.   LFlag=1                 /* Show LogOff Immediately? (1=Yes,0=No)        */
  15.  SDFlag=2                 /* SignOn Format: (0=Letter,1=Memo#1,2=Memo#2)  */
  16.  LDFlag=2                 /* LogOff Format: (0=Letter,1=Memo#1,2=Memo#2)  */
  17. EdLines=15                /* Total Lines to Allow in CNet Editor.         */
  18.  MinUse=1                 /* Mins Used to be considered "during signon"   *|
  19.                                                                           *|
  20. ***************************************************************************/
  21.  
  22. getuser 1 ; Handle=result ; Date=date(s) ; call READDATA ; Flag=0
  23. getuser 1400030 ; u=result*10 ; getuser 1307444 ; c=strip(result)
  24. if u<MinUse then Flag=1 ; if index('QOR',upper(c))>0 then Flag=2
  25. bbsidentify name ; bbsname=result ; bbsidentify sysop ; sysop=result
  26.  
  27. START:
  28.     OnFlag=exists(DirFile'Mess.SignOn') ; OffFlag=exists(DirFile'Mess.LogOff')
  29.     if SFlag=1 & Flag=1 then signal SIGNON ; if LFlag=1 & Flag=2 then signal LOGOFF
  30. START1:
  31.     tr 'f1n1cb- c6'bbsname' cdAuto Message cb-n1'
  32.     if Flag~=2 then tr 'caIs cbSignon caMessage cfActiveca: 'word('c9No ceYes',OnFlag+1)'ca!'
  33.     if Flag~=1 then tr 'caIs cbLogoff caMessage cfActiveca: 'word('c9No ceYes',OffFlag+1)'ca!'
  34.     tr 'n1z4c3▀cb Auto Message Main Menu 2.3 z4cb▀z0n1'
  35.     tr '     c5(c7Cc5)c7reate c5The Auto Message'
  36.     tr '     c5(cbVc5)cbiew   c5The Auto Message'
  37.     tr '     c5(c6Ec5)c6dit   c7The Auto Message'
  38.     tr '     c5(c7Ac5)cebout  cbThe Auto Message'
  39.     tr '     c5(c7Qc5)c7uit   cbThe Auto Messagen1'
  40.     se 'z4cbYour Selection?z0 cb(ceCcb/ceVcb/ceEcb/ceAcb/cdQcb)cf: ce'
  41.     gc ; aa=result ; call CHECK ; a=index('VCEA/?HQ',aa) ; if a=0 then a=8
  42.     if a=1 then do ; tr 'View' ; signal VIEW ; end
  43.     if a=2 then do ; tr 'Create' ; signal CREATE ; end
  44.     if a=3 then do ; tr 'Edit' ; signal EDIT ; end
  45.     if a>3 & a<8 then do ; tr 'About' ; signal ABOUT ; end
  46.     tr 'cdQuit'
  47.   signal BYE
  48.  
  49. VIEW:
  50.     if OnFlag+OffFlag=0 then do
  51.         tr 'n1cfThere are c9NO ceAuto cbMessages cfto caVIEWcf!'
  52.         call PRESS ; signal START ; end
  53.     if Flag=1 then signal SIGNON ; if Flag=2 then signal LOGOFF
  54.     se 'n1ceViewcf> cbSca:cfignOn, cbLca:cfogoff, or cdQca:cfQuit? cb(ceScb/ceLcb/cdQcb)cf: ce'
  55.     gc ; aa=result ; call CHECK ; a=index('SLQ',aa) ; if a=0 then a=3
  56.     if a=3 then do ; tr 'Quit' ; signal START ; end
  57.     if a=1 & Flag~=2 then do ; tr 'SignOn' ; signal SIGNON ; end
  58.     if a=2 & Flag~=1 then do ; tr 'LogOff' ; signal LOGOFF ; end
  59.  
  60. SIGNON:
  61.     if OnFlag=0 then do
  62.         tr 'n1cfThere is c9NO caSignOn ceAuto cbMessagecf!' ; signal SIGNON1 ; end
  63.     if SDFlag=0 then do ; tr 'f1z5cb Sign On Auto Message z0Cce'DateS'n2cfDear cav01}cf,'
  64.         tr '*0'DirFile'Mess.SignOn}n1Ccb- cd'OnHandle ; end
  65.     if SDFlag=1 then do
  66.         tr 'f1cb  Toc9: cev01}n1cbFromc9: cf'OnHandle'n1cbDatec9: ca'DateS
  67.         se 'cb  Rec9: cdSign On Auto Messagen1*0'DirFile'Mess.SignOn}' ; end
  68.     if SDFlag=2 then do
  69.         tr 'f1cb  Toc9: cev01}n1cbDatec9: ca'DateS'n1'
  70.         se 'cd'center('Sign On Auto Message',78)'n1*0'DirFile'Mess.SignOn}'
  71.         tr 'n1Cc9-ca 'OnHandle' c9-' ; end
  72. SIGNON1:
  73.     call PRESS ; if SFlag=1 & Flag=1 then do
  74.         se 'n1cfWould c9YOU cflike to leave a caSignOn cbAuto ceMessage cffor the cdNEXT '
  75.         se 'cfuser that signs on to cd'bbsname'cf? cb(caycb/caNcb)cf: ca' ; gc ; a=result
  76.         if a='Y' then do ; tr 'Yes.' ; CFlag=1 ; signal CREATE1 ; end
  77.         else tr 'No.' ; signal BYE ; end
  78.   signal START
  79.  
  80. LOGOFF:
  81.     if OffFlag=0 then do
  82.         tr 'n1cfThere is c9NO caLogoff ceAuto cbMessagecf!' ; signal LOGOFF1 ; end
  83.     if LDFlag=0 then do ; tr 'f1z5cb Log Off Auto Message z0Cce'DateL'n2cfDear cav01}cf,'
  84.         tr '*0'DirFile'Mess.LogOff}n1Ccb- cd'OffHandle ; end
  85.     if LDFlag=1 then do
  86.         tr 'f1cb  Toc9: cev01}n1cbFromc9: cf'OffHandle'n1cbDatec9: ca'DateL
  87.         se 'cb  Rec9: cdLog Off Auto Messagen1*0'DirFile'Mess.LogOff}' ; end
  88.     if LDFlag=2 then do
  89.         tr 'f1cb  Toc9: cev01}n1cbDatec9: ca'DateL'n1'
  90.         se 'cd'center('Log Off Auto Message',78)'n1*0'DirFile'Mess.LogOff}'
  91.         tr 'n1Cc9-ca 'OffHandle' c9-' ; end
  92. LOGOFF1:
  93.     call PRESS ; if LFlag=1 & Flag=2 then do
  94.         se 'n1cfWould c9YOU cflike to leave a caLogOff cbAuto ceMessage cffor the cdNEXT '
  95.         se 'cfuser that logs off cd'bbsname'cf? cb(caycb/caNcb)cf: ca' ; gc ; a=result
  96.         if a='Y' then do ; tr 'Yes.' ; CFlag=2 ; signal CREATE1 ; end
  97.         else tr 'No.' ; signal BYE ; end
  98.   signal START1
  99.  
  100. CREATE:
  101.     if Flag=1 then do ; CFlag=1 ; signal CREATE1 ; end
  102.     if Flag=2 then do ; CFlag=2 ; signal CREATE1 ; end
  103.     se 'n1ceCreatecf> cbSca:cfignOn, cbLca:cfogoff, or cdQca:cfQuit? cb(ceScb/ceLcb/cdQcb)cf: ce'
  104.     gc ; aa=result ; call CHECK ; a=index('SLQ',aa) ; if a=0 then a=3
  105.     if a=3 then do ; tr 'cdQuit' ; signal START ; end
  106.     if a=1 then do ; tr 'SignOn' ; CFlag=1 ; end
  107.     if a=2 then do ; tr 'Logoff' ; CFlag=2 ; end
  108. CREATE1:
  109.     cleareditor ; file=DirFile'Mess.'word('SignOn LogOff',CFlag)
  110.     se "n1cfUsing cdCNet's Editorcf, create your ceAuto ca"
  111.     tr word('SignOn LogOff',CFlag)" cbMessage cfnow:c6"
  112.     calleditor EdLines ; st=result ; if st=0 then tr 'c9Aborted.'
  113.     if st=1 then do ; se 'cbSaving...' ; saveeditor file ; st=result
  114.         if st=0 then tr 'h9c9Error during Save.' ; else tr 'h6ed.'
  115.     if CFlag=1 then do ; OnHandle=Handle ; OnDate=Date ; end
  116.         else do ; OffHandle=Handle ; OffDate=Date ; end
  117.     call SAVEDATA ; end ; call PRESS ; Log=CFlag
  118.     if Flag=1 & SFlag=1 then signal BYE ; if Flag=2 & LFlag=1 then signal BYE
  119.   signal START
  120.  
  121. EDIT:
  122.     if OnFlag+OffFlag=0 then do
  123.         tr 'n1cfThere are c9NO ceAuto cbMessages cfto csEDITcf!'
  124.         call PRESS ; signal START ; end
  125.     if Flag=1 then do ; CFlag=1 ; signal EDIT1 ; end
  126.     if Flag=2 then do ; CFlag=2 ; signal EDIT1 ; end
  127.     se 'n1ceEditcf> cbSca:cfignOn, cbLca:cfogoff, or cdQca:cfQuit? cb(ceScb/ceLcb/cdQcb)cf: ce'
  128.     gc ; aa=result ; call CHECK ; a=index('SLQ',aa) ; if a=0 then a=3
  129.     if a=3 then do ; tr 'Quit' ; signal START ; end
  130.     if a=1 then do ; tr 'SignOn' ; CFlag=1 ; end
  131.     if a=2 then do ; tr 'Logoff' ; CFlag=2 ; end
  132. EDIT1:
  133.     if CFlag=1 & OnFlag=0 then do
  134.         tr 'n1cfThere is c9NO caSignOn ceAuto cbMessage cfto cdEDITcf!'
  135.         call PRESS ; signal START ; end
  136.     if CFlag=2 & OffFlag=0 then do
  137.         tr 'n1cfThere is c9NO caLogoff ceAuto cbMessage cfto cdEDITcf!'
  138.         call PRESS ; signal START ; end
  139.     se "n1cfUsing cdCNet's Editorcf, edit this ceAuto ca"
  140.     tr word('SignOn LogOff',CFlag)' cbMessage cfnow:c6'
  141.     file=DirFile'Mess.'word('SignOn LogOff',CFlag)
  142.     loadeditor file ; calleditor EdLines ; st=result ; if st=0 then do
  143.         se 'c9Delete cfthe ceAuto ca'word('SignOn LogOff',CFlag)' cbMessage? cf(ceYcf/cencf)cb: ce'
  144.         gc ; a=result ; if a='N' then do ; tr 'No.' ; signal START ; end
  145.         tr 'Yes. c9Deleting...$odelete 'file'}w1h6ed.'
  146.         signal START ; end
  147.     if st=1 then do ; se 'cbSaving...' ; saveeditor file ; st=result
  148.         if st=0 then tr 'h9c9Error during Save.' ; else tr 'h6ed.'
  149.     if CFlag=1 then do ; OnHandle=Handle ; OnDate=Date ; end
  150.         else do ; OffHandle=Handle ; OffDate=Date ; end
  151.     call SAVEDATA ; end ; call PRESS ; Log=CFlag+2
  152.   signal START
  153.  
  154. ABOUT:
  155.     tr 'f1ce'
  156.     tr 'C▄▀▀▄ █  █ ▀▀█▀▀ ▄▀▀▄    █▄ ▄█ █▀▀▀ ▄▀▀▄ ▄▀▀▄ ▄▀▀▄ ▄▀▀▄ █▀▀▀'
  157.     tr 'C█▀▀█ █  █   █   █  █ ▀▀ █ ▀ █ █▀▀   ▀▄   ▀▄  █▀▀█ █ ▄▄ █▀▀'
  158.     tr 'C█  █ ▀▄▄▀   █   ▀▄▄▀    █   █ █▄▄▄ ▀▄▄▀ ▀▄▄▀ █  █ ▀▄▄▀ █▄▄▄cf'
  159.     se 'n1   Auto Message is a neat little program that lets you create a '
  160.     se 'short message that will be automatically displayed when the next '
  161.     se 'user signs on to this bbs. You can also create an Auto Message '
  162.     se 'that will be displayed when the next user logs off of this bbs.'
  163.     se 'n2   You can also view either Auto Message, if it exists, edit '
  164.     se 'the existing Auto Message, or create a brand new one all your own.'
  165.     se 'n2   I hope you enjoy this program, and good luck in your Auto '
  166.     tr 'Message creations.n2Cca'sysop ; call PRESS
  167.   signal START
  168.  
  169. PRESS:
  170.     se 'n1Ccb(cfPress ceENTER cfDude!cb)i1 40}'
  171.   return
  172.  
  173. READDATA:
  174.     if ~exists(DirFile'Mess.Data') then do
  175.         call open(f1,DirFile'Mess.Data','w')
  176.             call writeln(f1,'No One|'date'|x')
  177.             call writeln(f1,'No One|'date'|x')
  178.         call close(f1) ; end
  179.     call open(f1,DirFile'Mess.Data','r')
  180.         a=readln(f1) ; parse var a OnHandle'|'OnDate'|'junk
  181.         a=readln(f1) ; parse var a OffHandle'|'OffDate'|'junk
  182.     call close(f1)
  183.     if SDFlag=1 then DateS=date('u',OnDate,'s')
  184.     if SDFlag=0 | SDFlag=2 then do
  185.         on=date('n',OnDate,'s') ; m=date('m',OnDate,'s')
  186.         DateS=m' 'strip(word(on,1),'l','0')', 'word(on,3) ; end
  187.     if LDFlag=1 then DateL=date('u',OffDate,'s')
  188.     if LDFlag=0 | LDFlag=2 then do
  189.         off=date('n',OffDate,'s') ; m=date('m',OffDate,'s')
  190.         DateL=m' 'strip(word(off,1),'l','0')', 'word(off,3) ; end
  191.   return
  192.  
  193. SAVEDATA:
  194.     call open(f1,DirFile'Mess.Data','w')
  195.         call writeln(f1,OnHandle'|'OnDate'|x')
  196.         call writeln(f1,OffHandle'|'OffDate'|x')
  197.     call close(f1) ; call READDATA
  198.   return
  199.  
  200. BYE:
  201.     if Log=1 then logentry 'caCreated cfSignOn ceAuto cbMessagecf!'
  202.     if Log=2 then logentry 'caCreated cfLogOff ceAuto cbMessagecf!'
  203.     if Log=3 then logentry 'caEdited cfSignOn ceAuto cbMessagecf!'
  204.     if Log=4 then logentry 'caEdited cfLogOff ceAuto cbMessagecf!'
  205.     bufferflush
  206.   exit
  207.  
  208. CHECK:
  209.     if result~='###PANIC' then return
  210.     tr 'f1n9Loss of Carrier'
  211.     logentry 'Loss of Carrier in AutoMessage2'
  212.     bufferflush
  213.   exit
  214.  
  215. SYNTAX: ; ERROR: ; IOERR: ; gu 1311992 ; a=result ; gu 1311960 ; b=result
  216.     er='z4cf'a||b'z0 c9ERRORce: cb'rc' cf(ce'errortext(rc)'cf) c6'
  217.     er=er||'in line ca'sigl'c6.' ; tr 'n1'er ; logentry er ; bufferflush
  218. /** END *******************************************************************\
  219. \****************************************** FRONTIERS BBS (716)/823-9892 **/
  220.